Presence is generally defined as knowing that a person is available via, for example, a certain device over a particular medium as soon as the user connects to a network. For instance, via presence information, it may be ascertained that the person is available online, and on a connected device with a certain device profile. Presence may be used to communicate the state information of a single person or a group of people or an individual entity or a group of entities. A user or entity which indicates its presence state is termed a presentity. A group of users or a group of entities which indicates a single aggregated presence state is termed as an aggregate or an aggregate presentity. Presence is used to notify a group of watchers in a contact list about the state of person, including availability. When the user changes its presence state, each contact on the contact list is informed about the new presence state of the user.
Previously presence was aggregated and filtered at a central processor, with the addition of users aggregation and filtering bottlenecks at the central processor. The present invention is for distributed aggregation and filtering to the presence sources and presence watchers, thus allowing greater ease in scaling.
Therefore, what is needed is a method of implementing presence aggregation and filtering without creating bottlenecks at the central processor. More specifically what is needed is a method to distribute to presence clients and connectors the functionality of rich presence aggregation and of the intelligent filtering of presence.